7fe25a189e16e07b1cd2c6038b5b0c46986001b1,languages/languageDesign/scopes/runtime/source_gen/jetbrains/mps/lang/scopes/runtime/HidingByNameScope.java,HidingByNameScope,HidingByNameScope,#SNode#SNode#Scope#Scope#,29
Before Change
this.scope = scope;
this.parentScope = parentScope;
this.hidingRootConceptFqName = NameUtil.nodeFQName(hidingRoot);
this.kindConceptFqName = NameUtil.nodeFQName(kind);
// todo: maybe lazy in getAvailableElements?
// todo: I need this micro optimizations?
Iterable<SNode> tmpResult = scope.getAvailableElements(null);
After Change
private final Set<String> names;
public HidingByNameScope(SNode hidingRoot, SNode kind, @NotNull Scope scope, @NotNull Scope parentScope) {
this(NameUtil.nodeFQName(hidingRoot), NameUtil.nodeFQName(kind), scope, parentScope);
}
public HidingByNameScope(String hidingRootConceptFQName, String kindConceptFQName, @NotNull Scope scope, @NotNull Scope parentScope) {
// hiding root: all subconcepts of hidingRoot hide each other